///////////////////////////////////////////////////////////
//  DoubleData.h
//  Implementation of the Class DoubleData
//  Created on:      19-Aug-2013 10:14:36 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_BC7C629F_ED81_4be1_B8E4_ED75DA350EC2__INCLUDED_)
#define EA_BC7C629F_ED81_4be1_B8E4_ED75DA350EC2__INCLUDED_

#include "../Interfaces/IDouble.h"

namespace Data
{
class DoubleData : public IDouble
{

public:

	DoubleData(const double& _value = 0.00);
	DoubleData(const DoubleData& anotherDouble);
	virtual ~DoubleData();
	virtual IData::DataType GetDataType() const;
	virtual IObject::ObjectType GetType() const;
	virtual double GetValue() const;
	virtual void SetValue(const double& _value);
	virtual IObject* Clone();
	virtual String_t ToString() const;
	virtual String_t ToXML();
  virtual bool operator==(const double& _anotherValue) const;
  virtual bool operator!=(const double& _anotherValue) const;
  virtual bool operator>(const double& _anotherValue) const;
  virtual bool operator>=(const double& _anotherValue) const;
  virtual bool operator<(const double& _anotherValue) const;
  virtual bool operator<=(const double& _anotherValue) const;

private:
	IObject::ObjectType m_type;
	IData::DataType m_dataType;
	double m_value;

};
}
#endif // !defined(EA_BC7C629F_ED81_4be1_B8E4_ED75DA350EC2__INCLUDED_)
